:root {
    --image-carousel-switch-button: url() no-repeat 50%;
    --image-carousel-thumbnail-size: 54px;
    --image-carousel-background: var(--default-background);
    --image-carousel-scene-border-color: var(--border-color);
    --image-carousel-thumbnail-border-color: var(--border-color);
    --image-carousel-thumbnail-active-border-color: var(--color-primary);
}

.dark-side {
    --image-carousel-background: var(--default-background);
    --image-carousel-scene-border-color: var(--border-color);
    --image-carousel-thumbnail-border-color: var(--border-color);
    --image-carousel-thumbnail-active-border-color: var(--color-primary);
}

.image-carousel {
    background: var(--image-carousel-background);
    display: block;
    position: relative;
    width: 100%;
}

.image-carousel {
    .badge {
        position: absolute;
        top: 0;
        right: 0;
        padding: 4px 8px;
        font-size: 14px;
        font-weight: 700;
        line-height: 16px;
        z-index: 3;
        
        &.-left {
            left: 0;
            right: auto;
        }
    }
    
    .scene {
        display: flex;
        position: relative;
        flex-flow: row nowrap;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        overflow: hidden;
        padding: 1rem;
        border-radius: 4px;
        
        .slide {
            display: flex;
            position: absolute;
            top: 0;
            left: 0;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            z-index: 0;
            padding: 1rem;

            img {
                width: 100%;
                height: 100%;
                object-fit: contain;
                object-position: center;
            }
        }
    }
    
    .prev-button, .next-button {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: hsla(0, 0%, 74.1%, .8);
        z-index: 1;
        
        &::after {
            content: "";
            display: block;
            margin-right: 2px;
            width: 16px;
            height: 16px;
            background: var( --image-carousel-switch-button );
            transition: all .3s ease-in-out;
        }
        
        &:hover {
            background: hsla(0, 0%, 57.3%, .8);
        }
    }
    
    .prev-button {
        left: 0;
    }
    
    .next-button {
        right: 0;
        &::after {
            transform: rotate(180deg) translateX(-2px);
        }
    }
    
    .thumbnails {
        display: flex;
        position: relative;
        flex-flow: row wrap;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 4px;
        margin: 1rem 0;
        list-style: none;
        
        .thumbnail {
            display: flex;
            position: relative;
            align-items: center;
            justify-content: center;
            width: var(--image-carousel-thumbnail-size);
            height: var(--image-carousel-thumbnail-size);
            padding: 4px;
            border: 1px solid var(--image-carousel-thumbnail-border-color);
            cursor: pointer;
            user-select: none;
            background: transparent;
            border-radius: 4px;
            transition: all .2s ease;
            
            img {
                width: 100%;
                height: 100%;
                object-fit: contain;
                object-position: center;
            }
            
            &.active {
                border-color: var(--image-carousel-thumbnail-active-border-color);
            }
        }
    }
}